package actor

// IActor 定义了一个actor该有的接口
type IActor interface {
	// 收到消息回调, 虽然是public函数, 但其实是内部回调, 切记不要手工调用
	OnReceiveMessage(message interface{}, sender *PID, ctx IContext)
}

// ActorFunc 符合actor接口的函数
type ActorFunc func(message interface{}, sender *PID, ctx IContext)

func (f ActorFunc) OnReceiveMessage(message interface{}, sender *PID, ctx IContext) {
	f(message, sender, ctx)
}

// Producer actor生产者
type Producer func() IActor
